home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / vol16n13.zip / ATLCTL.ZIP / CPAtlEdit10.h < prev    next >
C/C++ Source or Header  |  1997-01-25  |  961b  |  41 lines

  1.  
  2. //////////////////////////////////////////////////////////////////////////////
  3. // CProxy_AtlEditCtlEvents
  4. template <class T>
  5. class CProxy_AtlEditCtlEvents : public IConnectionPointImpl<T, &DIID__AtlEditCtlEvents, CComDynamicUnkArray>
  6. {
  7. public:
  8. //methods:
  9. //_AtlEditCtlEvents : IDispatch
  10. public:
  11.     void Validate(
  12.         BSTR Text,
  13.         VARIANT_BOOL * Valid)
  14.     {
  15.         VARIANTARG* pvars = new VARIANTARG[2];
  16.         for (int i = 0; i < 2; i++)
  17.             VariantInit(&pvars[i]);
  18.         T* pT = (T*)this;
  19.         pT->Lock();
  20.         IUnknown** pp = m_vec.begin();
  21.         while (pp < m_vec.end())
  22.         {
  23.             if (*pp != NULL)
  24.             {
  25.                 pvars[1].vt = VT_BSTR;
  26.                 pvars[1].bstrVal= Text;
  27.                 pvars[0].vt = VT_BOOL | VT_BYREF;
  28.                 pvars[0].byref= Valid;
  29.                 DISPPARAMS disp = { pvars, NULL, 2, 0 };
  30.                 IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp);
  31.                 pDispatch->Invoke(0x1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL);
  32.             }
  33.             pp++;
  34.         }
  35.         pT->Unlock();
  36.         delete[] pvars;
  37.     }
  38.  
  39. };
  40.  
  41.